﻿
Partial Class Interfaz_Imagenes_frmSistemaCreaUsuarios
    Inherits System.Web.UI.Page
    Dim CL As New ControladorLogica

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If CL.visibilidadesFormsInternos("Sistema", Session("user").ToString) = False Then
            Response.Redirect("Index.aspx")
        End If
        Dim ArrayEmpleados As New ArrayList
        Dim ArrayGrupo As New ArrayList
        Dim i As Integer
        Dim nombre As String
        Dim apellido As String

        ArrayEmpleados = CL.obtenerEmpleado()
        ArrayGrupo = CL.ObtenerGrupo()

        If Not Page.IsPostBack Then
            For i = 0 To ArrayEmpleados.Count - 1
                nombre = DirectCast(ArrayEmpleados.Item(i), Empleado).Nombre
                apellido = DirectCast(ArrayEmpleados.Item(i), Empleado).Apellido
                Me.DropTrabajador.Items.Add(nombre + " " + apellido)
            Next

            For i = 0 To ArrayGrupo.Count - 1
                Me.DropGrupo.Items.Add(DirectCast(ArrayGrupo.Item(i), GrupoUsuario).nombreGrupo)
            Next
        End If
        Me.BtnEditar.Visible = False
        Me.BtnIngresar.Visible = False
        Me.BtnEliminar.Visible = False
    End Sub

#Region "Funcionalidades"

    Private Sub CargarUsuario()
        Dim nombre As String = ""
        Dim apellido As String = ""
        Dim tamaño As Integer = Me.DropTrabajador.Text.ToString.Length
        Dim nombreApellido As String = Me.DropTrabajador.Text
        Dim i As Integer = 0
        Dim j As Integer = 0

        For i = 0 To tamaño - 1
            If nombreApellido.Chars(i) = " " Then
                Exit For
            End If
            nombre = nombre + nombreApellido.Chars(i)
        Next

        For j = i + 1 To tamaño - 1
            apellido = apellido + nombreApellido.Chars(j)
        Next

        Me.TxTNombreUsuario.Text = nombre.Substring(0, 1) + apellido
        Me.TxTPassword.Text = nombre.Substring(0, 1) + apellido + "MSH123"
        Me.TxTRepitePass.Text = nombre.Substring(0, 1) + apellido + "MSH123"
    End Sub

    Private Sub Clean()
        Me.TxTNombreUsuario.Text = ""
        Me.TxTPassword.Text = ""
        Me.TxTRepitePass.Text = ""
    End Sub

    Private Sub IngresarEditarUsuario()
        Dim res As Integer
        Dim usuarioTemporal As String = Me.TxTNombreUsuario.Text
        Dim query As String = "select * from usuariosistema where usuario='" + usuarioTemporal + "'"
        Dim usuarioSistema As Usuario
        Dim nameUsuario As String = ""
        usuarioSistema = New Usuario("", "")
        If (CL.ObtenerUsuario(query).Count <> 0) Then
            usuarioSistema = DirectCast(CL.ObtenerUsuario(query).Item(0), Usuario)
            nameUsuario = usuarioSistema.User
        Else
            nameUsuario = ""
        End If


        If usuarioTemporal = nameUsuario Then
            res = MsgBox("El usuario ya existe en el sistema desea Eliminar/Editar el usuario ", vbQuestion + vbYesNo + vbDefaultButton2, "Aviso")
            If res = "6" Then
                Me.BtnEditar.Visible = True
                Me.BtnEliminar.Visible = True
                Me.BtnIngresar.Visible = False
                Me.TxTNombreUsuario.ReadOnly = True
                Me.TxTPassword.Text = usuarioSistema.Password
                Me.TxTRepitePass.Text = usuarioSistema.Password
            Else
                Me.BtnIngresar.Visible = True
                Me.BtnEditar.Visible = false
                Me.BtnEliminar.Visible = False
            End If
        Else
            Me.BtnIngresar.Visible = True
            Me.BtnEditar.Visible = False
            Me.BtnEliminar.Visible = False
        End If

    End Sub

    Private Sub EliminarUsuario()
        Dim usuarioEliminar As String = Me.TxTNombreUsuario.Text
        CL.eliminarUsuario(usuarioEliminar)
    End Sub

    Private Function EditarUsuario() As Boolean
        Dim nombreEditar As String = Me.TxTNombreUsuario.Text
        Dim passEditar As String = Me.TxTPassword.Text
        Dim repPass As String = Me.TxTRepitePass.Text
        Dim query As String = ""

        If (passEditar = repPass) Then
            Dim editUsuario As New Usuario(nombreEditar, passEditar)
            CL.editarUsuario(editUsuario)
            Return True
        Else
            MsgBox("Las contraseñas no coinciden intentelo nuevamente")
            Me.BtnEditar.Visible = True
            Me.BtnEliminar.Visible = True
            Return False
        End If

    End Function

    Private Sub InsertarUsuario()
        Dim pass As String = Me.TxTPassword.Text
        Dim repPass As String = Me.TxTRepitePass.Text
        Dim nombre As String = ""
        Dim apellido As String = ""
        Dim rutEmpleado As String = ""
        Dim idGrupo As String = ""
        Dim query As String = ""
        Dim tamaño As Integer = Me.DropTrabajador.Text.ToString.Length
        Dim nombreApellido As String = Me.DropTrabajador.Text
        Dim i As Integer = 0
        Dim j As Integer = 0

        For i = 0 To tamaño - 1
            If nombreApellido.Chars(i) = " " Then
                Exit For
            End If
            nombre = nombre + nombreApellido.Chars(i)
        Next

        For j = i + 1 To tamaño - 1
            apellido = apellido + nombreApellido.Chars(j)
        Next

        query = "select rut from empleado where nombre='" + nombre + "' and apellido='" + apellido + "'"
        rutEmpleado = CL.Ejecuta(query).Item("rut").ToString

        query = "select id from grupousuarios where nombregrupo='" + Me.DropGrupo.Text + "'"
        idGrupo = CL.Ejecuta(query).Item("id").ToString

        If (pass = repPass) Then
            Dim usuario As New Usuario(Me.TxTNombreUsuario.Text, pass)
            usuario.RefEmpleado = rutEmpleado
            usuario.Grupo = idGrupo
            CL.insertarUsuario(usuario)
            MsgBox("El usuario ha sido insertado exitosamente")

        Else
            MsgBox("Las contraseñas no coinciden por favor intentarlo nuevamente")
            Me.TxTPassword.Text = ""
            Me.TxTRepitePass.Text = ""
        End If
    End Sub
#End Region

#Region "Botones"

    Protected Sub BtnSelect_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnSelect.Click
        CargarUsuario()
        IngresarEditarUsuario()
    End Sub

    Protected Sub BtnLimpiar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnLimpiar.Click
        Me.Clean()
    End Sub

    Protected Sub BtnIngresar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnIngresar.Click
        InsertarUsuario()
        Clean()
    End Sub

    Protected Sub BtnEditar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEditar.Click
        Dim resp As Boolean = EditarUsuario()
        If (resp = True) Then
            MsgBox("El usuario a sido editado con exito")
            Clean()
        End If

    End Sub

    Protected Sub BtnEliminar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click
        EliminarUsuario()
        MsgBox("El usuario a sido eliminado con exito")
        Clean()
    End Sub
#End Region

End Class
